package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.hr.vo.payWx.VxWgkUserAuthResultVO;
import org.jsola.user.entity.UserDO;
import org.jsola.user.vo.UserLoginVO;

import java.util.List;

import static org.jsola.hr.example.EmpInfoExample.*;

/**
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【员工信息】所有信息详情展示对象")
@Data
public class EmpAllInfoVO extends EmpInfoVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_DEP_INFO_VO_LIST, example = E_DEP_INFO_VO_LIST)
    private List<DepInfoVO> depInfoList;

    @ApiModelProperty(notes = N_POSITION_INFO_VO_LIST, example = E_POSITION_INFO_VO_LIST)
    private List<PositionInfoVO> positionInfoList;

    @ApiModelProperty(notes = "员工基本额外信息")
    private List<EmpAdditionalFieldsVO> empAdditionalBasicList;

    @ApiModelProperty(notes = "员工工作经历")
    private List<EmpWorkVO> empWorkList;

    @ApiModelProperty(notes = "员工工作经历额外信息")
    private List<EmpAdditionalFieldsVO> empAdditionalWorkList;

    @ApiModelProperty(notes = "员工联系人")
    private List<EmpContactsVO> empContactsList;

    @ApiModelProperty(notes = "员工额外联系人")
    private List<EmpAdditionalFieldsVO> empAdditionalContactsList;

    @ApiModelProperty(notes = "员工合同")
    private List<EmpContractVO> empContractList;

    @ApiModelProperty(notes = "员工额外合同")
    private List<EmpAdditionalFieldsVO> empAdditionalContractList;

    @ApiModelProperty(notes = "员工教育经历")
    private List<EmpEducationVO> empEducationList;

    @ApiModelProperty(notes = "员工额外教育经历")
    private List<EmpAdditionalFieldsVO> empAdditionalEducationList;

    @ApiModelProperty(notes = "员工证件信息")
    private List<EmpCardVO> empCardList;

    @ApiModelProperty(notes = "员工额外证件信息")
    private List<EmpAdditionalFieldsVO> empAdditionalCardList;

    @ApiModelProperty(notes = "员工家庭成员信息")
    private List<EmpFamilyVO> empFamilyList;

    @ApiModelProperty(notes = "员工家庭成员额外信息")
    private List<EmpAdditionalFieldsVO> empAdditionalFamilyList;

    @ApiModelProperty(notes = "员工奖惩记录信息")
    private List<EmpRewardPunishVO> empRewardPunishList;

    @ApiModelProperty(notes = "员工奖惩记录额外信息")
    private List<EmpAdditionalFieldsVO> empAdditionalRewardPunishList;

//    @ApiModelProperty(notes = "员工档案信息")
//    private List<EmpArchivesVO> empArchivesList;

    @ApiModelProperty(notes = "员工培训记录")
    private List<EmpTrainVO> empTrainList;

    @ApiModelProperty(notes = "员工培训额外记录")
    private List<EmpAdditionalFieldsVO> empAdditionalTrainList;

    @ApiModelProperty(notes = "员工证书")
    private List<EmpCertificateVO> empCertificateList;

    @ApiModelProperty(notes = "员工证书")
    private List<EmpAdditionalFieldsVO> empAdditionalCertificateList;

    @ApiModelProperty(notes = "部门ID列表")
    private List<String> depIdList;

    @ApiModelProperty(notes = "岗位ID列表")
    private List<String> positionIdList;

    @ApiModelProperty(notes = N_DEP_NAME, example = E_DEP_NAME)
    private String depName;

    @ApiModelProperty(notes = N_POSITION_NAME, example = E_POSITION_NAME)
    private String positionName;

    @ApiModelProperty(notes = N_LEVEL, example = E_LEVEL)
    private Integer level;

    @ApiModelProperty(notes = N_TICKET, example = E_TICKET)
    private String ticket;

    @ApiModelProperty(notes = N_RES_STATUS, example = E_RES_STATUS)
    private Integer resStatus;

    @ApiModelProperty(notes = N_USER_LOGIN_VO, example = E_USER_LOGIN_VO)
    private UserLoginVO userLoginVO;

    @ApiModelProperty(notes = "司龄")
    private Double joinCompanyLength;

    @ApiModelProperty(notes = "年龄")
    private Integer age;

    @ApiModelProperty(notes = "生日 年-月-日")
    private String birthdayStr;

    @ApiModelProperty(notes = "微信头像")
    private String headImgUrl;

    @ApiModelProperty(notes = "微信昵称")
    private String nickName;

    @ApiModelProperty(notes = "用户DO")
    private UserDO userDO;

    @ApiModelProperty(notes = N_EMP_PAPER_CONTRACT_VO_LIST, example = E_EMP_PAPER_CONTRACT_VO_LIST)
    private List<EmpPaperContractVO> empPaperContractList;

    @ApiModelProperty(notes = "基本信息额外信息")
    private List<CompanyAdditionalFieldsListVO> companyAdditionalFieldsListBasicVOList;

    @ApiModelProperty(notes = "联系信息额外信息")
    private List<CompanyAdditionalFieldsListVO> companyAdditionalFieldsListContactVOList;

    @ApiModelProperty(notes = "附件额外信息")
    private List<CompanyAdditionalFieldsListVO> companyAdditionalFieldsListAttachmentVOList;

    @ApiModelProperty(notes = "员工档案资料额外信息")
        private List<CompanyAdditionalFieldsListVO> companyAdditionalFieldsListArchiveVOList;

    @ApiModelProperty(notes = "员工离职资料")
    private List<CompanyAdditionalFieldsListVO> companyAdditionalFieldsListLeaveOfficeVOList;

    @ApiModelProperty(notes = "微工卡授权状态")
    private VxWgkUserAuthResultVO vxWgkUserAuthResultVO;

}

